package tt.dz.egobus.servicemanager.business.distance;

import tt.dz.egobus.servicemanager.bean.IdAlgorithm;
import tt.dz.egobus.servicemanager.business.point.Point;

/**
 * @author Anson
 * @date 17-3-30
 * @name 判断当前不同的业务是否超出了最大距离
 * @since 1.0.3
 */
public interface MaxOverAlgorithm extends IdAlgorithm {

    int NOT_LIMIT = -1;

    /**
     * @author Anson
     * @date 17-3-30
     * @name 获取当前服务号
     * @since 1.0.3
     */
    int businessCode();


    /**
     * @param startPoint 开始经纬度
     * @param endPoint   结束经纬度
     * @author Anson
     * @date 17-3-30
     * @name 判断当前两经纬度是否超出当前的业务服务号容纳的最大距离
     * true:表示超过了约定最大距离,false:表示未超过
     * @since 1.0.3
     */
    boolean isOverMaxDistance(Point startPoint, Point endPoint);

    /**
     * @author Anson
     * @date 17-3-30
     * @name 当前的最大距离，若返回{@link MaxOverAlgorithm#NOT_LIMIT } ,表示不限制
     * @since 1.0.3
     */
    double maxDistance();
}
